package hcn.protocol.ods.stopRegPlan;

import lombok.Data;

import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;

/**
 * @Author:FangZhiyi
 * @Description
 * @Data Created in 2020/11/15 17:39
 * @Moddified By:
 */
@XmlRootElement(name = "Data")
public class ListRosteringXMLResp implements Serializable {

    private List<Work> WorkLists;

    @XmlElementWrapper(name = "WorkLists")
    @XmlElement(name = "WorkList")
    public List<Work> getWorkLists() {
        return WorkLists;
    }

    public void setWorkLists(List<Work> workLists) {
        WorkLists = workLists;
    }

    public static class Work {
        private String docId;//坐诊医生标识
        private String doctorId;//坐诊医生id
        private String doctorName;//坐诊医生姓名
        private String departmentId;//坐诊医生科室id
        private String deptName;//坐诊医生科室名称
        private String workDeptName;//坐诊科室名称
        private String workDeptId;//挂号科室id
        private String workDate;//坐诊日期时间
        private String workId;//排班标识
        private String dayOfWeek;//周几
        private String resourceLevel;//   1 普通门诊     2 专家门诊
        /**
         * 上下午 0 全天 1 上午 2 中午 3 下午 4 夜间
         */
        private String planTime;
        /**
         * 挂号费
         */
        private Double regFee;

        private List<TimeFrame> timeFrames;

        public Double getRegFee() {
            return regFee;
        }

        public void setRegFee(Double regFee) {
            this.regFee = regFee;
        }

        @XmlElement(name = "RegisteredDcotor")
        public String getDoctorId() {
            return doctorId;
        }

        public void setDoctorId(String doctorId) {
            this.doctorId = doctorId;
        }

        @XmlElement(name = "RegisteredDcotorName")
        public String getDoctorName() {
            return doctorName;
        }

        public void setDoctorName(String doctorName) {
            this.doctorName = doctorName;
        }

        @XmlElement(name = "RegisteredDeptCode")
        public String getDepartmentId() {
            return departmentId;
        }

        public void setDepartmentId(String departmentId) {
            this.departmentId = departmentId;
        }

        @XmlElement(name = "RegisteredDeptName")
        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public String getWorkDeptName() {
            return workDeptName;
        }

        public void setWorkDeptName(String workDeptName) {
            this.workDeptName = workDeptName;
        }

        public String getWorkDeptId() {
            return workDeptId;
        }

        public void setWorkDeptId(String workDeptId) {
            this.workDeptId = workDeptId;
        }

        @XmlElement(name = "WorkDate")
        public String getWorkDate() {
            return workDate;
        }

        public void setWorkDate(String workDate) {
            this.workDate = workDate;
        }

        @XmlElement(name = "DayOfWeek")
        public String getDayOfWeek() {
            return dayOfWeek;
        }

        public void setDayOfWeek(String dayOfWeek) {
            this.dayOfWeek = dayOfWeek;
        }


        @XmlElement(name = "ScheduleMark")
        public String getWorkId() {
            return workId;
        }

        public void setWorkId(String workId) {
            this.workId = workId;
        }

        public String getPlanTime() {
            return planTime;
        }

        public void setPlanTime(String planTime) {
            this.planTime = planTime;
        }

        @XmlElement(name = "RegisteredDeptCode")
        public String getResourceLevel() {
            return resourceLevel;
        }

        public void setResourceLevel(String resourceLevel) {
            this.resourceLevel = resourceLevel;
        }

        public String getDocId() {
            return docId;
        }

        public void setDocId(String docId) {
            this.docId = docId;
        }

        @XmlElementWrapper(name = "TimeFrames")
        @XmlElement(name = "TimeFrame")
        public List<TimeFrame> getTimeFrames() {
            return timeFrames;
        }

        public void setTimeFrames(List<TimeFrame> timeFrames) {
            this.timeFrames = timeFrames;
        }
    }

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class TimeFrame {
        /**
         * 医师排班类别代码
         */
        @XmlElement(name = "DoctorDutyType")
        private String doctorDutyType;
        /**
         * 排班状态
         */
        @XmlElement(name = "ArrangeStatus")
        private String arrangeStatus;
        /**
         * 医生排班流水号（排班标识）
         */
        @XmlElement(name = "ScheduleMark")
        private String scheduleMark;
        /**
         * 排班号源总数
         */
        @XmlElement(name = "ResourceSumTotal")
        private Integer resourceSumTotal;
        /**
         * 号源已使用数
         */
        @XmlElement(name = "UsedNumber")
        private Integer usedNumber;
        /**
         * 剩余号源数
         */
        @XmlElement(name = "RemainNumber")
        private Integer remainNumber;
        /**
         * 排班资源级别
         */
        @XmlElement(name = "ResourceLevelCode")
        private String resourceLevelCode;
    }
}
